home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d7 / dorpch35.arc / DOORPCH.DOC < prev    next >
Text File  |  1989-03-20  |  68KB  |  2,220 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                             D  O  O  R  P  C  H
  11.                            =====================
  12.  
  13.  
  14.                                 Release 3.5
  15.  
  16.  
  17.                              January 17, 1989
  18.  
  19.  
  20.                       Clint Labarthe & Terry Shockley
  21.                         Copyright (C),  1987 - 1989
  22.  
  23.  
  24.                   Black Hole BBS, Longwood, Florida 32750
  25.  
  26.                           Node 1 BBS 407-260-6397
  27.  
  28.                           Node 2 By Subscription
  29.  
  30.                           300/1200/2400 24 Hours
  31.  
  32.  
  33.                   Death Star BBS, Orlando, Florida 32751
  34.  
  35.                           Node 1 BBS 407-875-4123
  36.  
  37.                           300/1200/2400 24 Hours
  38.  
  39.  
  40.  
  41.  
  42.  
  43.                            Table  Of  Contents
  44.                           =====================
  45.  
  46.  
  47.      Overview   . . . . . . . . . . . . . . . . . . . . 1
  48.  
  49.      Disclaimer Of Liability  . . . . . . . . . . . . . 2
  50.  
  51.      Contents Of "ARC" File   . . . . . . . . . . . . . 3
  52.  
  53.      Features Of This Release   . . . . . . . . . . . . 5
  54.  
  55.      Operating Environment  . . . . . . . . . . . . . . 7
  56.  
  57.      Planned Future Enhancements  . . . . . . . . . . . 8
  58.  
  59.      DoorPch Configuration File . . . . . . . . . . . . 9
  60.  
  61.      DoorPch Routines . . . . . . . . . . . . . . . . . 10
  62.  
  63.      DoorPch Variables  . . . . . . . . . . . . . . . . 14
  64.  
  65.      Structure Of A DOOR Program  . . . . . . . . . . . 19
  66.        Include File Usage . . . . . . . . . . . . . . . 19
  67.        File Access Numbers  . . . . . . . . . . . . . . 20
  68.        Starting A DOOR  . . . . . . . . . . . . . . . . 20
  69.        Terminating a DOOR . . . . . . . . . . . . . . . 20
  70.        Compiling Your DOOR Program  . . . . . . . . . . 21
  71.        Linking Your DOOR Program  . . . . . . . . . . . 21
  72.        Executing Your DOOR Program  . . . . . . . . . . 22
  73.  
  74.      Programming Tip's  . . . . . . . . . . . . . . . . 23
  75.  
  76.        ANSI Color Graphics  . . . . . . . . . . . . . . 23
  77.          Intensity Of Text  . . . . . . . . . . . . . . 23
  78.          Blinking Text  . . . . . . . . . . . . . . . . 23
  79.          Foreground/Background Colors . . . . . . . . . 23
  80.  
  81.        Printing Output  . . . . . . . . . . . . . . . . 24
  82.          Printing Complete Line . . . . . . . . . . . . 24
  83.          Printing A Partial Line  . . . . . . . . . . . 24
  84.          Printing A Line & Get A Response . . . . . . . 24
  85.          Printing With Tab's  . . . . . . . . . . . . . 25
  86.  
  87.        Ringing The Bell . . . . . . . . . . . . . . . . 25
  88.        Adding Color The EASY Way  . . . . . . . . . . . 25
  89.        Sending ANSI Music . . . . . . . . . . . . . . . 26
  90.        Bell or Alarm Toggles  . . . . . . . . . . . . . 26
  91.        Clearing The Screen  . . . . . . . . . . . . . . 26
  92.        BASIC Keywords . . . . . . . . . . . . . . . . . 27
  93.        High Scores & Bulletins  . . . . . . . . . . . . 27
  94.  
  95.  
  96.  
  97.  
  98.  
  99.                            Table  Of  Contents
  100.                           =====================
  101.  
  102.  
  103.  
  104.      Sysop Information  . . . . . . . . . . . . . . . . 28
  105.        Line 24 Of The Display . . . . . . . . . . . . . 28
  106.        Line 24/25 Of The Display  . . . . . . . . . . . 28
  107.  
  108.      DoorPch History  . . . . . . . . . . . . . . . . . 29
  109.  
  110.      DoorPch Credits  . . . . . . . . . . . . . . . . . 30
  111.  
  112.      Reporting Problems . . . . . . . . . . . . . . . . 31
  113.  
  114.      User Enhancement Requests  . . . . . . . . . . . . 32
  115.  
  116.      DoorPch Registration . . . . . . . . . . . . . . . 33
  117.  
  118.      Trade Marks / Copyrights . . . . . . . . . . . . . 35
  119.  
  120.      DoorPch - Version 3.5
  121.      User's Guide for DOOR Programmers
  122.  
  123.  
  124.      Overview
  125.      ========
  126.  
  127.      DoorPch  is a set of Basic and Assembler language routines  which
  128.      facilitate  the creation of a PCBoard (tm) DOOR program. All  the
  129.      logic   to  monitor  the  carrier,  input  and  output  for   the
  130.      communications  port  is included in the code.  Full  ANSI  color
  131.      graphics  and ANSI music capabilities are also included. All  you
  132.      must  do  is follow some simple interface requirements  and  then
  133.      either  do a GOSUB or CALL to perform the required function.  The
  134.      code also maintains an informative display on lines 24 and 25  of
  135.      the  local  console, closely, and in some  cases,  exactly,  like
  136.      PCBoard. The options to turn the display, bell and alarm on & off
  137.      are  also at your disposal. Now, after reading this you  probably
  138.      are saying "Huh ?" or "Sure!".  Really!  Its very simple....
  139.  
  140.      DoorPch  is  used by more DOORs than any other  software  of  its
  141.      kind.  So  join  the fun of writing DOOR's.  You,  and  countless
  142.      others,  will benefit from your efforts.  There  are  imitations,
  143.      look-a-likes and competition from other less functional software.
  144.      But there is only one DoorPch !
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.                                   Page  1
  180.      DoorPch - Version 3.5
  181.      User's Guide for DOOR Programmers
  182.  
  183.  
  184.      Disclaimer Of Liability
  185.      =======================
  186.  
  187.      We assume no liability for its use.  You may copy it and share it
  188.      with  others  so  long  as the code  and  the  documentation  are
  189.      distributed together.  You may include this logic in as many DOOR
  190.      programs   as  you  wish.   If  you  have  any  suggestions   for
  191.      improvements to this code, reply to the address below or call our
  192.      BBS's   at  the  number  stated  above.   Please   complete   the
  193.      Registration form at the end of this documentation.  This program
  194.      and  all  its INCLUDE and Library files are copyrighted.   It  is
  195.      unlawful  to  disassemble  or  otherwise  decode  or  misuse  the
  196.      software contained herein.  It is for your use in creating  DOORs
  197.      and  may not be altered in an way.  You may not charge a fee  for
  198.      its  use  or sell it.  DORPCH35.ARC is to be distributed  in  its
  199.      ORIGINAL ARC format and contain ALL the original files.
  200.  
  201.             Send inquires to:   Clint Labarthe / Terry Shockley
  202.                                 P. O. Box 151445
  203.                                 Altamonte Springs, Florida, 32701-1445
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.                                   Page  2
  240.      DoorPch - Version 3.5
  241.      User's Guide for DOOR Programmers
  242.  
  243.  
  244.      Contents Of "ARC" File
  245.      ======================
  246.  
  247.      The following files should be in DORPCH35.ARC:
  248.  
  249.       1.  BRUN30.EXE     Microsoft QuickBASIC 3.0 run-time library. It
  250.                          has been patched to hold DTR.  See QBDTRPCH.
  251.  
  252.       2.  CLE.BAT        Batch  file  for compiling &  Linking  sample
  253.                          DOOR program EXAMPLE.BAS.
  254.  
  255.       3.  COMPILE.BAT    Batch file to COMPILE your source module with
  256.                          library DORPCH35.EXE.
  257.  
  258.       4.  DOORPCH.BEG    INCLUDE   this   code   AFTER   the   INCLUDE
  259.                          of DOORPCH.USR.
  260.  
  261.                          Note:  Some  variables must be set  prior  to
  262.                          this INCLUDE. See README.NOW and DOCS.
  263.  
  264.       5.  DOORPCH.DOC    This  documentation.  For use  in  developing
  265.                          doors for PCBoard.
  266.  
  267.       6.  DOORPCH.END    INCLUDE this code at the END of  your program.
  268.                          If  you are upgrading an earlier DOOR you  may
  269.                          still  use  this  code.  It  replaced the  old
  270.                          GETIN2.ASC.
  271.  
  272.       7.  DOORPCH.USR    COMMON  variables. INCLUDE this code  at  the
  273.                          BEGINNING of your program.
  274.  
  275.       8.  DOORPCH1.CFG   An example configuration file for single node
  276.                          operation.
  277.  
  278.       9.  DOORPCH2.CFG   An  example configuration file for Node 2  if
  279.                          required.
  280.  
  281.      10.  DORPCH35.EXE   You  MUST  compile  your DOOR  using  the  /L
  282.                          DORPCH35.EXE  parameter.  The logic  in  this
  283.                          library replaced most of the old GETIN2.
  284.  
  285.      11.  EXAMPLE.BAS    A nice example DOOR (source code).
  286.  
  287.      12.  EXAMPLE.EXE    The compiled ready-to-run EXAMPLE Door.
  288.  
  289.      13.  EXAMPLE.SCR    NON-GRAPHICS file for EXAMPLE.EXE
  290.  
  291.      14.  EXAMPLEG.SCR   GRAPHICS file for EXAMPLE.EXE
  292.  
  293.      15.  EXDOOR.BAT     An typical DOOR batch file.
  294.  
  295.      16.  LINKER.BAT     Batch file to LINK your .OBJ into an .EXE.
  296.  
  297.  
  298.  
  299.                                   Page  3
  300.      DoorPch - Version 3.5
  301.      User's Guide for DOOR Programmers
  302.  
  303.  
  304.      Contents Of "ARC" File (Continued)
  305.      ==================================
  306.  
  307.      17.  QBDTRPCH.ARC   Info  for  DEBUG  patch for  DTR  control  in
  308.                          QuickBASIC.
  309.  
  310.      18.  README.NOW     If included, should be READ right away !
  311.  
  312.      19.  SECURITY.DOC   How to use Mr. Clements "Security" System
  313.  
  314.      20.  SYSOP.DOC      You are to include this documentation  within
  315.                          the  ARC file containing your  DOOR  program.
  316.                          The  SysOp  will  need  this  information  to
  317.                          understand   how  to  interface  with   doors
  318.                          utilizing DOORPCH.
  319.  
  320.      21.  CHANGES.DOC    This  file contains a list  of  changes/fixes
  321.                          made   to  DoorPch  since  Version  3.1   was
  322.                          released.   This  file  should  be  carefully
  323.                          reviewed  before  using any  new  release  of
  324.                          DoorPch.
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.                                   Page  4
  360.      DoorPch - Version 3.5
  361.      User's Guide for DOOR Programmers
  362.  
  363.  
  364.      Features Of This Release
  365.      ========================
  366.  
  367.      Does NOT require the use of CTTY !!
  368.  
  369.      Constant  monitoring of COM port. Returns to PCBoard  if  carrier
  370.      lost.
  371.  
  372.      Supports Monochrome and Color PCBoard systems.
  373.  
  374.      Supports  all  the  standard COLORs in  ANSI.SYS  including  High
  375.      Intensity and Blinking text.
  376.  
  377.      Supports the use of ANSI Music.
  378.  
  379.      Informative line 24/25 display similar to PCBoard.
  380.  
  381.      Full interface to PCBoard by reading PCBOARD.SYS, PCBOARD.DAT and
  382.      the USERS files.
  383.  
  384.      Compatible  with  Networks using SHARE. A node  blocker  routine,
  385.      limits DOOR programs that don't/can't run on two nodes to run  on
  386.      one node at a time.
  387.  
  388.      Easy  to interface with. Minimal information required  from  your
  389.      DOOR program.
  390.  
  391.      DOOR can run in LOCAL mode as well as use the COM port.
  392.  
  393.      Screen  positioning (Col & Row) allow DOORS to update the  screen
  394.      of  the caller rather than scrolling text (ANSI codes).  This  is
  395.      very useful for DOORs which display a "board" on the screen.
  396.  
  397.      Allows  SysOp to CHAT with caller in DOOR  (F10).  Supports  word
  398.      wrapping  at  end of line similarly to PCBoard.   All  CHAT  time
  399.      credited so caller does not lose any time.
  400.  
  401.      SysOp can exit to DOS from inside the DOOR and return (F5).
  402.  
  403.      Includes  a  "standard"  high  score  routine  for  tracking  and
  404.      maintaining a bulletin for each DOOR game.
  405.  
  406.      Provides  the ability to "read" GRAPHICS and  NON-GRAPHICS  files
  407.      from disk to display to a caller.  These files may be a menu  for
  408.      your door, perhaps a logon or logoff screen etc.  Its very easy!
  409.  
  410.      Also  supports  a DoorPch DOOR Monitor utility which  provides  a
  411.      complete DOOR environment (coming in the near future).
  412.  
  413.      Allows the use of ALT-N (SysOp NEXT ON).
  414.  
  415.      Allows the use of ALT-X (Exit to DOS after caller).
  416.  
  417.  
  418.  
  419.                                   Page  5
  420.      DoorPch - Version 3.5
  421.      User's Guide for DOOR Programmers
  422.  
  423.  
  424.      Features Of This Release (Continued)
  425.      ====================================
  426.  
  427.      Provides Alarm Toggle (F4).
  428.  
  429.      Provides Bell Toggle (F7).
  430.  
  431.      Provides memory and string space available (F6).
  432.  
  433.      Allows SysOp to force the caller to return to PCBoard (F8).
  434.  
  435.      Ability to turn display on and off (F9).
  436.  
  437.      Ability to temporarily increase or decrease a callers time in the
  438.      DOOR (Up and Down KEYS).
  439.  
  440.      Supports  19,200  BPS  modems including  Hayes  V  Series.   Also
  441.      support CTS checking (MNP flow control).
  442.  
  443.      Auto detection of network operation.
  444.  
  445.      Reduces callers time if an Event is scheduled.
  446.  
  447.      Monitoring  of soft errors and reporting to the SysOp of  errors.
  448.      Results  are  written to the local console and to  a  disk  file:
  449.      DOORPCH.ERR
  450.  
  451.      Error  free  ! Well, maybe not, but we strive  to  attain  "zero-
  452.      defects".
  453.  
  454.      Cost is small compared to the benefits.
  455.  
  456.      Last; but not least, Compatible with PCBoard Version 14.0 !
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.                                   Page  6
  480.      DoorPch - Version 3.5
  481.      User's Guide for DOOR Programmers
  482.  
  483.  
  484.      Operating Environment
  485.      =====================
  486.  
  487.      DoorPch supports COM1 and COM2 only !!
  488.  
  489.      The use of CTTY is NOT necessary when this code is used.
  490.  
  491.      The memory addresses used by this code are those used by the  IBM
  492.      PC and "true" compatibles such as AT&T.  This code was  developed
  493.      for  Microsoft  QuickBASIC 3.0.  It may NOT be  used  with  other
  494.      versions of QuickBASIC.  QuickBASIC 4.0 was NOT used to create  a
  495.      LIB  file  due  to problems detected in its use  on  80286  CPU's
  496.      running multi-tasking software (DoubleDOS & Taskview).
  497.  
  498.      Be  sure  to  either  include a  (patched  for  DTR)  version  of
  499.      BRUN30.EXE  in  your  DOOR ARC file or provide a  way  for  other
  500.      SysOps  to get a version from you.  We suggest including in  your
  501.      ARC file.
  502.  
  503.      This  program (and your system) should be protected  by  PCBTrap.
  504.      This program and examples of its use can be found in the  version
  505.      14 documentation. However, this DORPCH35.EXE logic will detect  a
  506.      NOCARRIER  condition and branch back to PCBoard  eliminating  the
  507.      need  for WATCHDOG. To run a DOOR in LOCAL mode, WATCHDOG  CANNOT
  508.      be running. This exact code is currently used in a number of DOOR
  509.      programs on our BBS's.
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.                                   Page  7
  540.      DoorPch - Version 3.5
  541.      User's Guide for DOOR Programmers
  542.  
  543.  
  544.      Planned Future Enhancements
  545.      ===========================
  546.  
  547.      We  are  currently  planning to provide  support  for  other  BBS
  548.      systems. Some of these are: WildCat!, RBBS, Etc.
  549.  
  550.      Provide "full" support for both Quick Basic Version 3.0 & 4.x.
  551.  
  552.      We  continue  to use QuickBASIC 3.0 simply because we  had  found
  553.      many  problems using the QuickBASIC 4.x compilers.  The  problems
  554.      did  not  materialize until we operated TWO DOORS  compiled  with
  555.      DoorPch (using QuickBASIC 4.0) in both partitions under DoubleDOS
  556.      3.1V  and  4.0. A single DOOR would operate  fine.   However  TWO
  557.      doors  caused the system to "hang".
  558.  
  559.      We will look into all the ramifications of these compilers.  If a
  560.      solution can be found, we will provide a QuickBASIC 4.x LIB  file
  561.      which  will  allow you to static LINK with the  libraries  rather
  562.      than  the  current dynamic link provided by  the  QuickBASIC  3.0
  563.      environment.
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.                                   Page  8
  600.      DoorPch - Version 3.5
  601.      User's Guide for DOOR Programmers
  602.  
  603.  
  604.      DoorPch Configuration File
  605.      ==========================
  606.  
  607.      File Name:  DOORPCHn.CFG, where n is 1 or 2.
  608.  
  609.      The data in this file tells DoorPch where the PCBOARD.SYS file is
  610.      located.  The  location of the PCBOARD.DAT and  USERS  files  are
  611.      derived.  Place this file in the same sub-directory (default)  as
  612.      the  executable DOOR program. The data in each record MUST  begin
  613.      in column 1. This file is OPEN'ed as file #1. It is left OPEN for
  614.      your  convenience.
  615.  
  616.      You  may  add additional records beginning at record # 5  if  you
  617.      wish to pass additional information that your program may need to
  618.      run. If you do not need anything additional in this file, you may
  619.      CLOSE #1 following the initial $INCLUDE DOORPCH.BEG statement:
  620.  
  621.      Rec#1=>   C:\PCB\PCBOARD.SYS    (Your location for the .SYS file)
  622.      Rec#2=>   The Black Hole BBS    (Your BBS name)
  623.      Rec#3=>   Clint                 (The First name of the Sysop)
  624.      Rec#4=>   Labarthe              (The Last name of the SysOp)
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.                                   Page  9
  660.      DoorPch - Version 3.5
  661.      User's Guide for DOOR Programmers
  662.  
  663.  
  664.      DoorPch Routines
  665.      ================
  666.  
  667.      The  following  list  outlines  the  various  routines  that  are
  668.      available in DoorPch Version 3.5 for your usage.
  669.  
  670.  
  671.      Subroutine Name               Subroutine Usage
  672.      ------------------------      -----------------------------------
  673.  
  674.      10000  (label)                The   Error  routine.  You   should
  675.      or                            insure  that if you change  the  ON
  676.      ERR.ROUTINE (label)           ERROR GOTO xxx statement that it is
  677.                                    restored to 10000.
  678.  
  679.  
  680.      CAPS                          A  CALL  to  this  subroutine  will
  681.                                    cause anything in ARG$ to be put in
  682.                                    first  letter  caps.  IE:   DOORPCH
  683.                                    would change to DoorPch.
  684.  
  685.      CENT(anystring$)              Leading  spaces  are  appended   to
  686.                                    anystring$  so  as  to  center  the
  687.                                    string for output.
  688.  
  689.      COLOR.CHK                     A  CALL to this routine will  cause
  690.                                    LN$  to  be outputted  in  a  color
  691.                                    format.  The  format  is   anything
  692.                                    contained    between   the    (,<,[
  693.                                    and>,],)  char will be a  different
  694.                                    foreground  color. Either  red  for
  695.                                    numbers, cyan for uppercase text or
  696.                                    green for lowercase text.
  697.  
  698.      CLR.SCRN                      Do NOT do a CLS or send CHR$(12) to
  699.                                    the  COM  port.  Rather do  a  CALL
  700.                                    CLR.SCRN.  The Lines 24 and 25 will
  701.                                    then be refreshed on the screen.
  702.  
  703.      CVTTIME                       This  routine will call  GETTIME  &
  704.                                    FORMATTIME    to    perform     the
  705.                                    conversion.
  706.  
  707.      DELAY.TIME (D.TIME%)          Call  this  routine  and  pass   an
  708.                                    integer  in  order  to  generate  a
  709.                                    delay  expressed  in  TENTHS  of  a
  710.                                    second.
  711.  
  712.      ENTER                         A   call  to  this   routine   will
  713.                                    generate   a  "Press   <ENTER>   to
  714.                                    continue.." and wait for a CR.
  715.  
  716.  
  717.  
  718.  
  719.                                   Page  10
  720.      DoorPch - Version 3.5
  721.      User's Guide for DOOR Programmers
  722.  
  723.  
  724.      DoorPch Routines (Continued)
  725.      ============================
  726.  
  727.      EXITG                         Call  this  routine  when  you  are
  728.                                    ready   to  terminate   your   DOOR
  729.                                    program.
  730.  
  731.      FORMATTIME                    Using HOURS% and MINUTES% this  SUB
  732.                                    will  format string DISPTIME$  with
  733.                                    the format HH:MM.
  734.  
  735.      GET.DAY (TDATE$,DAY%)         A  call here will convert any  date
  736.                                    put in TDATE$ to the day it is from
  737.                                    the  beginning  of  the  year   and
  738.                                    returned  in DAY%.  TDATE$  format:
  739.                                    DD/MM/YYYY.
  740.  
  741.      GET.INKEY                     This  SUB closely emulates  BASIC's
  742.                                    INKEY$ command.  It looks for a key
  743.                                    on the COM port or local  keyboard.
  744.                                    It  stores the last key entered  in
  745.                                    USR.KY$.  It does NOT print to  any
  746.                                    device nor does it update ARG$. The
  747.                                    door  author  must  keep  track  of
  748.                                    "keyboard  timeouts"  and  printing
  749.                                    the output, if necessary.
  750.  
  751.      GET.KEY                       CALL  to this subroutine  when  you
  752.                                    wish a character input WITHOUT  the
  753.                                    caller pressing RETURN !  Character
  754.                                    is NOT echoed.
  755.  
  756.      GET.KEYECHO                   Performs   the  same  function   as
  757.                                    GET.KEY  but echoes  the  character
  758.                                    tothe caller and the local screen.
  759.  
  760.      GET.KEYLOOP                   This  SUB "looks" for input.  If  a
  761.                                    key  was entered it will be  placed
  762.                                    in   USR.KY$  and  echoed  to   the
  763.                                    caller.  If NO key was entered then
  764.                                    USR.KY$  will  be empty.   The  key
  765.                                    entered will be concatenated to the
  766.                                    end   of  ARG$.   ARG$  should   be
  767.                                    cleared prior to CALLing this  SUB.
  768.                                    This  routine allows you  to  check
  769.                                    for input and continue  processing.
  770.                                    You must keep track of the  callers
  771.                                    "keyboard  time"  to be  sure  they
  772.                                    have not fallen asleep !
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.                                   Page  11
  780.      DoorPch - Version 3.5
  781.      User's Guide for DOOR Programmers
  782.  
  783.  
  784.      DoorPch Routines (Continued)
  785.      ============================
  786.  
  787.      GETTIME                       Call  this  SUB to get  obtain  the
  788.                                    following variables:
  789.  
  790.                                    HOURS%   - The current hour
  791.                                    MINUTES% - The current minute
  792.                                    SECONDS% - The current second
  793.                                    SINCEMID# (Double) -
  794.                                               Seconds since midnight
  795.  
  796.      HIGH.SCORE                    This  is a standardized HIGH  SCORE
  797.                                    routine.   The   variables   HSCR#,
  798.                                    FIRST$,   LAST$,  and  PROGB$   are
  799.                                    important in here.
  800.  
  801.      INITIALIZE                    The  DOORPCH.BEG  logic  will  CALL
  802.                                    this   subroutine   to   initialize
  803.                                    DORPCH35.EXE (and your DOOR).
  804.  
  805.      IN.PUT                        CALL  to this subroutine to  output
  806.                                    the contents of OT1$ and LN$.  This
  807.                                    routine  then waits for the  caller
  808.                                    to  respond  with  input  which  is
  809.                                    returned in ARG$.  This  subroutine
  810.                                    is  used  to  ask a  caller  for  a
  811.                                    response.
  812.  
  813.      LCONV(string)                 Will   convert  "string"   to   all
  814.                                    lowercase characters.
  815.  
  816.      LEFTTRUN(string)              Will  truncate all  leading  spaces
  817.                                    from "string".
  818.  
  819.      MORE                          A CALL to MORE will output a prompt
  820.                                    and  waits for a CR.  Check  for  a
  821.                                    "E"  in ARG$.  If found then  cause
  822.                                    your output to stop.
  823.  
  824.      MUSICG                        CALL  to this subroutine to  output
  825.                                    the contents of MUSIC$. MUSIC$ MUST
  826.                                    be filled with valid notes, pauses,
  827.                                    timing, and octave commands.
  828.  
  829.      NAMEG                         Any  true name put in ARG$ will  be
  830.                                    converted to proper case.
  831.  
  832.      OUT.NCR                       CALL  to this subroutine to  output
  833.                                    the  contents of LN$.   The  CURSOR
  834.                                    will remain at the end of the line.
  835.                                    A CR & LF will NOT be sent.
  836.  
  837.  
  838.  
  839.                                   Page  12
  840.      DoorPch - Version 3.5
  841.      User's Guide for DOOR Programmers
  842.  
  843.  
  844.      DoorPch Routines (Continued)
  845.      ============================
  846.  
  847.      OUT.PUT                       CALL  to this subroutine to  output
  848.                                    the contents of LN$.
  849.  
  850.      READ.TXT(filename$)           CALL  this SUB with the name  of  a
  851.                                    file to display to the caller.  The
  852.                                    SUB will look for files ending in a
  853.                                    "G" for graphics callers.  If a "G"
  854.                                    file  does not exist the  SUB  will
  855.                                    simply   OPEN   filename$.     This
  856.                                    feature is very nice for displaying
  857.                                    menus,  opening or closing  screens
  858.                                    to  callers. The drive &  path  may
  859.                                    also  be  included  with  the  file
  860.                                    name.
  861.  
  862.      RIGHTTRUN(string)             Will  truncate all trailing  spaces
  863.                                    from "string".
  864.  
  865.      TRUN(any string)              CALL   this  routine  to  cause   a
  866.                                    truncations  of ALL leading  spaces
  867.                                    as  well as all trailing spaces  in
  868.                                    the passed parameter string.
  869.  
  870.      UCONV(string)                 Will   convert  "string"   to   all
  871.                                    uppercase characters.
  872.  
  873.      All non documented calls are at your own risk, and may change at
  874.      anytime.
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.                                   Page  13
  900.      DoorPch - Version 3.5
  901.      User's Guide for DOOR Programmers
  902.  
  903.  
  904.      DoorPch Variables
  905.      =================
  906.  
  907.      The following variables are used to pass information between your
  908.      DOOR program and DoorPch.
  909.  
  910.      Variable                      Definition
  911.      -----------------------       ----------------------------------
  912.  
  913.      ARG$                          This   string  contains  the   data
  914.                                    returned   by   a   CALL    IN.PUT,
  915.                                    CALL GET.KEY or CALL GET.KEYECHO.
  916.  
  917.      ALIAS.FIRST$                  If run by the DoorPch MONITOR  (not
  918.                                    yet avail), this will be the  call-
  919.                                    ers FIRST name.
  920.  
  921.      ALIAS.LAST$                   Same as above except LAST name.
  922.  
  923.      BBSSYS$                       The name of the BBS Software.
  924.                                    Example:  PCBoard
  925.  
  926.      BAUDCONN$                     Contains the baud rate at which the
  927.                                    caller connected to the BBS system.
  928.                                    The variable is in STRING format.
  929.  
  930.      BAUDOPEN$                     Contains the baud rate at which the
  931.                                    modem was opened by the door.  This
  932.                                    may  not contain the same value  as
  933.                                    BAUDCONN$.   The  variable  is   in
  934.                                    STRING format.
  935.  
  936.      BELL%                         Notifies  DoorPch to output a  BELL
  937.                                    tone.  If BELL% = 1. A value  of  0
  938.                                    will NOT output a BELL (default).
  939.  
  940.      BGC%                          Background color
  941.  
  942.                                    O for BLACK   (Default)
  943.                                    1 for RED
  944.                                    2 for GREEN
  945.                                    3 for YELLOW
  946.                                    4 for BLUE
  947.                                    5 for MAGENTA
  948.                                    6 for CYAN
  949.                                    7 for WHITE
  950.  
  951.      BLINK%                        When  set to 1 all  text  displayed
  952.                                    will BLINK. Default is 0.
  953.  
  954.      CALLALARM%                    A value of 1 indicates that F7  has
  955.                                    been toggled.
  956.  
  957.  
  958.  
  959.                                   Page  14
  960.      DoorPch - Version 3.5
  961.      User's Guide for DOOR Programmers
  962.  
  963.      DoorPch Variables (Continued)
  964.      =============================
  965.  
  966.  
  967.      Variable                      Definition
  968.      -----------------------       ----------------------------------
  969.  
  970.      CENTER%                       Will center LN$ when it is OUT.PUT.
  971.                                    CENTER%  = 1: LN$ =  "Howdy":  CALL
  972.                                    OUT.PUT
  973.  
  974.      COMPRTOPN%                    This  variable is required  by  the
  975.                                    Error Handling routine 10000.
  976.  
  977.      DAY%                          See below variable TDATE$
  978.  
  979.      D.TIME%                       The number of TENTHS of seconds  to
  980.                                    delay when CALLing DELAY.TIME
  981.  
  982.      DISPLAY%                      The LOCAL console display.  A value
  983.                                    of  1 denotes "on".  Zero  (0)  de-
  984.                                    notes  "off".  READ-ONLY -  DO  NOT
  985.                                    ALTER.
  986.  
  987.      DISPTIME$                     Returned by CVTTIME or  FORMATTIME.
  988.                                    Returns  hours and minutes  in  the
  989.                                    format HH:MM
  990.  
  991.      DMIN%                         The  number of MINUTES  the  caller
  992.                                    has remaining in the DOOR.
  993.  
  994.      FGC%                          Foreground color.
  995.  
  996.                                    0 for BLACK (be careful)
  997.                                    1 for RED
  998.                                    2 for GREEN
  999.                                    3 for YELLOW   (Default)
  1000.                                    4 for BLUE
  1001.                                    5 for MAGENTA
  1002.                                    6 for CYAN
  1003.                                    7 for WHITE
  1004.  
  1005.      FIRST$                        The first name of the caller.
  1006.  
  1007.      GRAPHICS%                     When equal 1 then the caller is  in
  1008.                                    GRAPHICS mode.  When 0 they are NOT
  1009.                                    in GRAPHICS mode.
  1010.  
  1011.      HIGH%                         Determines  if  text should  be  in
  1012.                                    HIGH INTENSITY. Default is 1.   For
  1013.                                    LOW intensity set this variable  to
  1014.                                    0 and set LOWER to 1.
  1015.  
  1016.  
  1017.  
  1018.  
  1019.                                   Page  15
  1020.      DoorPch - Version 3.5
  1021.      User's Guide for DOOR Programmers
  1022.  
  1023.      DoorPch Variables (Continued)
  1024.      =============================
  1025.  
  1026.  
  1027.      Variable                      Definition
  1028.      -----------------------       ----------------------------------
  1029.  
  1030.      HOURS%                        Returned  by  CALL  GETTIME.    The
  1031.                                    current HOURS.
  1032.  
  1033.      HSCR#                         Keep  track of game high scores  in
  1034.                                    this  variable. It is used  by  the
  1035.                                    SUB  HIGH.SCORE which can  then  be
  1036.                                    called  just  before you  end  your
  1037.                                    DOOR game.
  1038.  
  1039.      LAST$                         Last name of the caller, UPPER case
  1040.  
  1041.      LN$                           Populate  this  string  with   your
  1042.                                    output  line.   This data  will  be
  1043.                                    displayed  to the console and  sent
  1044.                                    to the COM port.
  1045.  
  1046.      LOCALUSR%                     If  set  to a 1, then the  Door  is
  1047.                                    running in LOCAL mode.
  1048.  
  1049.      MINUTES%                      Returned  by CALL to GETTIME.   The
  1050.                                    current MINUTES
  1051.  
  1052.      NAME$                         Name of caller plus 2 spaces.
  1053.  
  1054.      NETWORK%                      If  found  set  to  a  1  then  the
  1055.                                    PCBOARD.DAT   indicates   you   are
  1056.                                    running  in  a network.   Use  this
  1057.                                    variable to determine when  Network
  1058.                                    logic  (i.e.  LOCK,  UNLOCK   etc.)
  1059.                                    should be used.  IMPORTANT!!
  1060.  
  1061.      NODE%                         Set  this  variable  to  1  if  you
  1062.                                    require  DoorPch  to  use  LOCKing.
  1063.                                    Default  is 0, and will cause  your
  1064.                                    program  to  run on one node  at  a
  1065.                                    time.
  1066.  
  1067.      OT1$                          String used by DoorPch as a  prefix
  1068.                                    when sending data to the COM port.
  1069.  
  1070.      PAGEBELL%                     A  value of 1 indicates F4 is  tog-
  1071.                                    gled ON.
  1072.  
  1073.      PARAM$                        Any   parameters  passed  to   your
  1074.                                    program will be in this string. The
  1075.                                    parameters must start with a "/".
  1076.  
  1077.  
  1078.  
  1079.                                   Page  16
  1080.      DoorPch - Version 3.5
  1081.      User's Guide for DOOR Programmers
  1082.  
  1083.      DoorPch Variables (Continued)
  1084.      =============================
  1085.  
  1086.  
  1087.      Variable                      Definition
  1088.      -----------------------       ----------------------------------
  1089.  
  1090.      PROGB$                        You  MUST  populate  this  variable
  1091.                                    with the name of your DOOR  program
  1092.                                    BEFORE the INCLUDE for  DOORPCH.BEG
  1093.                                    but    after   the   INCLUDE    for
  1094.                                    DOORPCH.USR.
  1095.  
  1096.                                    Example: PROGB$ =  "TGTRIVIA."
  1097.                                    Note the period(.)>>>>>>>>>>^
  1098.  
  1099.      PROGNAME$                     You  populate this string with  the
  1100.                                    literal name of your DOOR  program.
  1101.                                    Example:
  1102.                                          PROGNAME$ = "Top Gun Trivia"
  1103.  
  1104.      R.ELEASE$                     Same  as above. The Release  number
  1105.                                    of your DOOR program.
  1106.  
  1107.                                    Example:  R.ELEASE$ = "1.0"
  1108.  
  1109.      RETURNCASE%                   If set to a 1 then ARG$ is returned
  1110.                                    in UPPER case.  If set to a -1 then
  1111.                                    ARG$ is returned in LOWER case.  If
  1112.                                    set  to a 0 then ARG$ is  returned,
  1113.                                    as keyed, unchanged.
  1114.  
  1115.      SECONDS%                      Returned  by CALL to GETTIME.   The
  1116.                                    current SECONDS.
  1117.  
  1118.      SINCEMID#                     Returned  by CALL to  GETTIME.  The
  1119.                                    number of SECONDS since midnight.
  1120.  
  1121.      SYSFIRST$                     The  FIRST name of the  SysOp  from
  1122.                                    the DOORPCHn.CFG file.  FIRST$ will
  1123.                                    be  populated with this  name  when
  1124.                                    the user record number is 1.
  1125.  
  1126.      SYSLAST$                      The LAST name of the SysOp from the
  1127.                                    DOORPCHn.CFG  file.  LAST$ will  be
  1128.                                    populated  with this name when  the
  1129.                                    user record number is 1.
  1130.  
  1131.      SYSNAME$                      Populated  with  the name  of  YOUR
  1132.                                    BBS.  Extracted from [DOORPCHn.CFG]
  1133.                                    record #2.
  1134.  
  1135.      SYSOP%                        If set to 1, indicates the SysOp is
  1136.                                    using the DOOR.
  1137.  
  1138.  
  1139.                                   Page  17
  1140.      DoorPch - Version 3.5
  1141.      User's Guide for DOOR Programmers
  1142.  
  1143.      DoorPch Variables (Continued)
  1144.      =============================
  1145.  
  1146.  
  1147.      Variable                      Definition
  1148.      -----------------------       ----------------------------------
  1149.  
  1150.      TBSN%                         Set this variable to a value great-
  1151.                                    er  than 1 and DoorPch will TAB  to
  1152.                                    the  specified TAB position.  Reset
  1153.                                    to 1 after CALL.
  1154.  
  1155.      TDATE$                        Populate  this string with a  valid
  1156.                                    date (in this century).  The day of
  1157.                                    the year is returned in DAY%.   See
  1158.                                    GET.DAY SUB.
  1159.  
  1160.      TIME.ON#                      The  elapsed time this call in  the
  1161.                                    DOOR (Double precision) - seconds
  1162.  
  1163.      TIMESTART#                    The  time  the caller  entered  the
  1164.                                    DOOR (Double precision) - seconds
  1165.  
  1166.      XPOS%                         Used  to position the cursor.   Use
  1167.                                    only   when  doing  LOCATE   "type"
  1168.                                    logic.  XPOS% is the ROW number  (1
  1169.                                    to  23).   Your value is set  to  a
  1170.                                    NEGATIVE value once used.  You  may
  1171.                                    use it to determine the last  value
  1172.                                    you had set.
  1173.  
  1174.      YPOS%                         Same  as  XPOS% only for the COLUMN
  1175.                                    position (1 to 79).  Your value  is
  1176.                                    set to a NEGATIVE value once  used.
  1177.                                    You  may  use it to  determine  the
  1178.                                    last value you had set.
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.                                   Page  18
  1200.      DoorPch - Version 3.5
  1201.      User's Guide for DOOR Programmers
  1202.  
  1203.  
  1204.      Structure Of A DOOR Program
  1205.      ===========================
  1206.  
  1207.      The following information provides a general overview of how  you
  1208.      construct  a DOOR program.  The process is very easy and you  can
  1209.      gain  a  lot  of insight by reviewing the example  DOOR  that  is
  1210.      provided in the "ARC" file. The basic format of a DOOR program is
  1211.      as follows:
  1212.  
  1213.      Start of Program -----------------------------
  1214.  
  1215.      ' $INCLUDE: 'DOORPCH.USR'
  1216.        PROGNAME$ = "Example"    ' These
  1217.        PROGB$ = "EXAMPLE"       '       four
  1218.        R.ELEASE$ = "1.0"        '             MUST
  1219.        NODE% = 1                '                  be populated
  1220.      ' $INCLUDE: 'DOORPCH.BEG'    ' CALLs  INITIALIZATION  code   in
  1221.                                   ' DORPCH35.EXE. If  you  had  other
  1222.                                   ' information within.  DOORPCHn.CFG,
  1223.                                   ' you  would continue  reading  the
  1224.                                   ' file here then CLOSE #1.
  1225.          .
  1226.          .   Your programs logic
  1227.          .
  1228.      ' $INCLUDE: 'DOORPCH.END'
  1229.  
  1230.      End of Program -------------------------------
  1231.  
  1232.  
  1233.      Include File Usage
  1234.      ==================
  1235.  
  1236.      The  "DOORPCH.USR" include file establishes the required  linkage
  1237.      for  all  variables  used  in  the  DoorPch  environment.   These
  1238.      variables  are used by you (the DOOR programmer)  to  communicate
  1239.      your needs to DoorPch.
  1240.  
  1241.      The "DOORPCH.BEG" include file calls the initialization  routines
  1242.      used  in  DoorPch  in  order  to  read  the  configuration  file,
  1243.      initialize variables, ready the COM port, Etc.
  1244.  
  1245.      The  "DOORPCH.END"  include file provides a common set  of  error
  1246.      routines  and  a  set of conversion routines  for  accessing  the
  1247.      facilities  of DoorPch by Basic line numbers. Note:  Two  choices
  1248.      are available to you if you are upgrading from an earlier version
  1249.      of  DoorPch:  A) Leave your existing DOOR program coded  the  way
  1250.      you  originally coded it (IE: GOSUB 10170, GOSUB 10200  etc),  or
  1251.      B) Convert your existing DOOR program to use CALL statements thus
  1252.      eliminating the use of code in DOORPCH.END.
  1253.  
  1254.      New doors should utilize CALLs to perform DoorPch functions.
  1255.  
  1256.  
  1257.  
  1258.  
  1259.                                   Page  19
  1260.      DoorPch - Version 3.5
  1261.      User's Guide for DOOR Programmers
  1262.  
  1263.  
  1264.      Opening and Closing of Files
  1265.      ============================
  1266.  
  1267.      File  #  1  is  left  OPEN for  you.   You  may  add  records  to
  1268.      DOORPCHn.CFG  if you wish after the mandatory four records.  Once
  1269.      returned  from the Initialization code (DOORPCH.BEG),   you  must
  1270.      read  YOUR  records  from File # 1.  Then be sure  to  CLOSE  #1.
  1271.      Whether you read data from the (.CFG) file or not you MUST  CLOSE
  1272.      #  1.
  1273.  
  1274.      File  #  2, # 3 and # 4 are reserved for use  by  DoorPch.  These
  1275.      files MUST NOT be used or a Doorpch fatal error most likely  will
  1276.      occur at some point in your programs execution.  You may start at
  1277.      File # 5.
  1278.  
  1279.  
  1280.      Starting A DOOR
  1281.      ===============
  1282.  
  1283.      A  run-time  parameter is required to invoke your  DOOR  program.
  1284.      Other  parameters  may  also  be passed  so  long  as  the  first
  1285.      parameter after the .CFG file name begins with a slash "/". If  a
  1286.      slash  is  found  by DoorPch, the slash and all  the  data  which
  1287.      follows it are available in the variable: PARAM$ (see below under
  1288.      VARIABLES).
  1289.  
  1290.         Example:
  1291.  
  1292.         TGTRIVIA TRIVIA1.CFG would invoke the program TGTRIVIA.EXE
  1293.         passing parameter TRIVIA1.CFG to the program. The contents of
  1294.         the .CFG are:
  1295.  
  1296.         C:\PCB\PCBOARD.SYS   <=== The location of PCBOARD.SYS
  1297.         The Black Hole BBS   <=== Your BBS name goes here
  1298.         Clint                <=== SysOps FIRST name
  1299.         Labarthe             <=== SysOps LAST name.
  1300.  
  1301.         Note: File # 1 is left OPEN. You may add records to this file
  1302.         if you need to pass additional information to your DOOR
  1303.         program.  Remember to CLOSE # 1.
  1304.  
  1305.  
  1306.      Terminating A DOOR
  1307.      ==================
  1308.  
  1309.      How to terminate the DOOR.  Be certain all YOUR files (not  those
  1310.      used by Doorpch) are CLOSEed.  Then simply do the following:
  1311.  
  1312.          CALL EXITG
  1313.  
  1314.      You  will  not be returned from this SUB routine. The  DOOR  will
  1315.      terminate within DoorPch code.
  1316.  
  1317.  
  1318.  
  1319.                                   Page  20
  1320.      DoorPch - Version 3.5
  1321.      User's Guide for DOOR Programmers
  1322.  
  1323.  
  1324.      Compiling Your DOOR Program
  1325.      ===========================
  1326.  
  1327.      A BATch file is included (COMPILE.BAT).  Execute this batch  file
  1328.      with your source module as a parameter.
  1329.  
  1330.             Example:  COMPILE TGTRIVIA.BAS
  1331.  
  1332.      When  the batch file ends you will have an OBJect module  present
  1333.      in your current directory.
  1334.  
  1335.  
  1336.      Linking Your DOOR Program
  1337.      =========================
  1338.  
  1339.      A  BATch file is included (LINKER.BAT).  Execute  this  batch file
  1340.      with your OBJect module as a parameter.
  1341.  
  1342.               Example:  LINKER TGTRIVIA.OBJ
  1343.  
  1344.      When  the  batch  file ends you will have  an  EXEcutable  module
  1345.      present in your current directory.
  1346.  
  1347.      >>  Be careful here: Giving the linker the name of
  1348.          your  SOURCE module will cause a LINK  failure
  1349.          and the SOURCE module will be DESTROYED.   You
  1350.          may   wish  to  save  your  source  prior   to
  1351.          executing this BATch file.
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.                                   Page  21
  1380.      DoorPch - Version 3.5
  1381.      User's Guide for DOOR Programmers
  1382.  
  1383.  
  1384.      Executing Your DOOR Program
  1385.      ===========================
  1386.  
  1387.      Your  new  .EXE  module now contains all the  necessary  code  to
  1388.      function  as  a DOOR.  The .EXE module  requires  the  QuickBASIC
  1389.      run-time   routines  from  Microsoft  (BRUN30.EXE)   be   present
  1390.      somewhere  in the PATH when you execute your DOOR program.    You
  1391.      must also have a DOS Environment variable set for       Doorpch's
  1392.      use.  Place this statement in your AUTOEXEC.BAT   file:
  1393.  
  1394.               Example: SET DOORPCH=PCB
  1395.  
  1396.      Finally,  since  DORPCH35.EXE is a QuickBASIC  3.0  LIBRARY,  you
  1397.      have two choices where you may place this file:
  1398.  
  1399.         1) In the current directory, OR
  1400.         2) Set an environment variable
  1401.  
  1402.      Example:  SET LIB=<path to DORPCH35.EXE>
  1403.  
  1404.      Option  2  is  probably your best choice. Just  place  the  "SET"
  1405.      statement in your AUTOEXEC.BAT file.
  1406.  
  1407.      A small example of a DOOR program is included in the DORPCH35.ARC
  1408.      file:  EXAMPLE.BAS.  You can look this program over for  examples
  1409.      of many of the Doorpch functions.
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.                                   Page  22
  1440.      DoorPch - Version 3.5
  1441.      User's Guide for DOOR Programmers
  1442.  
  1443.      ANSI Colors Graphics
  1444.      ====================
  1445.  
  1446.      The  following  information outlines the use of  various  Doorpch
  1447.      variables    to   control   the   foreground/background    color,
  1448.      highlighting, and blinking capabilities.
  1449.  
  1450.  
  1451.      Intensity Of Text
  1452.      -----------------
  1453.  
  1454.      In  order  to  for any text you wish to display  to  be  in  high
  1455.      intensity,  simply set the variable HIGH% = 1.  Setting the  same
  1456.      variable to 0(zero) will display in low intensity.
  1457.  
  1458.  
  1459.      Blinking Text
  1460.      -------------
  1461.  
  1462.      In  order  to for any text you wish to display  to  be  blinking,
  1463.      simply set the variable BLINK% = 1.  Setting the same variable to
  1464.      0(zero) will turn off the blinking attribute.
  1465.  
  1466.  
  1467.      Foreground/Background Colors
  1468.      ----------------------------
  1469.  
  1470.      To  modify the colors that your text displays in, simply set  the
  1471.      two variables FGC% or BGC% to one of the values in the  following
  1472.      table for the desired effect:
  1473.  
  1474.             1 for RED             /
  1475.             2 for GREEN         /
  1476.        *    3 for YELLOW      /
  1477.             4 for BLUE       <== Correspond to ANSI codes
  1478.             5 for MAGENTA     \
  1479.             6 for CYAN          \
  1480.             7 for WHITE           \
  1481.      (*) - defaults
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.                                   Page  23
  1500.      DoorPch - Version 3.5
  1501.      User's Guide for DOOR Programmers
  1502.  
  1503.  
  1504.      Printing Output
  1505.      ===============
  1506.  
  1507.      Printing Complete Line
  1508.      ----------------------
  1509.  
  1510.        To write to the COM port a complete line of text:
  1511.  
  1512.        Place your text in LN$ and CALL OUT.PUT
  1513.  
  1514.        To center the text all you need to do is make
  1515.        CENTER% = 1 then CALL OUT.PUT.  The required spaces will
  1516.        be added to center your text.
  1517.  
  1518.  
  1519.      Printing A Partial Line
  1520.      -----------------------
  1521.  
  1522.      To write to the COM port a partial line of text holding
  1523.      the cursor at the end of the printed text:
  1524.  
  1525.      Place your text in LN$ and CALL OUT.NCR.
  1526.  
  1527.      Example: To print a red "Hi" and a yellow " There"
  1528.  
  1529.         FGC% = 1
  1530.         LN$="Hi":CALL OUT.NCR
  1531.         FGC% = 3
  1532.         LN$=" There":CALL OUT.PUT
  1533.  
  1534.  
  1535.      Printing A Line & Get A Response
  1536.      --------------------------------
  1537.  
  1538.      Place your text in LN$ and CALL IN.PUT. Your response will be  in
  1539.      ARG$. Setting RETURNCASE% to 1 will result in the response  being
  1540.      returned in UPPER case.  Setting this value to -1 (minus 1)  will
  1541.      return  a response in LOWER case. Setting the value to  0  (zero)
  1542.      will  return the response as keyed without conversion.   The  DE-
  1543.      FAULT is RETURNCASE% = 1. If you set it to zero or minus one (-1)
  1544.      it will be reset to 1 on the next CALL to IN.PUT.
  1545.  
  1546.         Example:
  1547.  
  1548.         RETURNCASE% = -1
  1549.  
  1550.         LN$="Are you finished ? ":CALL IN.PUT
  1551.         IF ARG$="y" then do something...
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.                                   Page  24
  1560.      DoorPch - Version 3.5
  1561.      User's Guide for DOOR Programmers
  1562.  
  1563.  
  1564.      Printing Output (Continued)
  1565.      ===========================
  1566.  
  1567.      Printing with TAB's
  1568.      -------------------
  1569.  
  1570.         To print at a TAB position: Set TBSN% to your TAB value.
  1571.  
  1572.         Example:
  1573.  
  1574.         TBSN%=50:LN$="Howdy":CALL OUT.PUT
  1575.         The above would print beginning in column 50.
  1576.  
  1577.  
  1578.      Ringing the BELL
  1579.      ================
  1580.  
  1581.      Please  do not WAKE UP the SYSOP! If your DOOR program  needs  to
  1582.      ring  the bell, please do it this way ! Set BELL% = 1.  The  bell
  1583.      will  not  be sent to the console unless the door is  running  in
  1584.      LOCAL mode.
  1585.  
  1586.      Example: LN$ = "Ooops !": BELL% = 1: CALL OUT.PUT
  1587.  
  1588.  
  1589.      Adding Color The Easy Way
  1590.      =========================
  1591.  
  1592.      With DoorPch Version 3.5 comes a new way to generate those  fancy
  1593.      color  displays.  A CALL to COLOR.CHK will colorize  anything  in
  1594.      LN$. You must first set the foreground (FGC%) and the  background
  1595.      (BGC%).  Then  load LN$ with data, and make the  CALL.   Anything
  1596.      contained  between [,(,< and >,),] will be  colorized.   Anything
  1597.      before a "-" will be colorized.
  1598.  
  1599.         The following rules apply for colorizing:
  1600.  
  1601.         A.   If CENTER% = 1 the text will be centered.
  1602.         B.   If BLINK% = 1 then all text inside of the delimiters
  1603.              <>, [], or  () will be blinking.
  1604.         C.   Numbers will be RED unless FGC% = 1 (red) then
  1605.              numbers will be BLUE.
  1606.         D.   Uppercase characters will be CYAN unless FGC% = 6
  1607.              (cyan) then they will be YELLOW.
  1608.         E.   Lowercase will be GREEN unless FGC% = 2 (green)
  1609.              then lowercase will be MAGENTA.
  1610.  
  1611.      The  COLOR.CHK SUB will output characters but will NOT  line feed.
  1612.      You must CALL OUT.PUT to get a line feed.
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.                                   Page  25
  1620.      DoorPch - Version 3.5
  1621.      User's Guide for DOOR Programmers
  1622.  
  1623.  
  1624.      Sending ANSI Music
  1625.      ==================
  1626.  
  1627.      Place  your ANSI music characters in MUSIC$ and CALL  MUSICG.  No
  1628.      control  codes or escapes sequences are put in MUSIC$,  just  raw
  1629.      notes  and QuickBASIC music codes.  DoorPch will handle and  load
  1630.      the  ANSI  sequences needed to make your music  work  locally  or
  1631.      remotely.  All  notes will be converted to uppercase.   Refer  to
  1632.      your  QuickBASIC manual and use only the data that  is  contained
  1633.      between  the  quotes. Doorpch will handle the  PLAY  and  VARPTR$
  1634.      commands.
  1635.  
  1636.         Ask your users:
  1637.  
  1638.         Can you handle music [Y/n]?
  1639.  
  1640.         If yes, then populate MUSIC$ with your music and CALL
  1641.         MUSICG.
  1642.  
  1643.         Note: Music will NOT be played to the local console if the
  1644.         system is in a NETWORK and the DOOR is in LOCAL mode.  Some
  1645.         network servers cannot handle background music being played.
  1646.  
  1647.         Example:
  1648.  
  1649.         FGC% = 2: LN$ = "Can your system handle music [Y/n] ? "
  1650.         CALL COLOR.CHK: CALL GET.KEYECHO
  1651.         IF ARG$ = "Y" THEN
  1652.            .
  1653.            .your music logic
  1654.            .
  1655.         ELSE
  1656.            .
  1657.            .No music logic
  1658.            .
  1659.         END IF
  1660.  
  1661.  
  1662.      Bell or Alarm Toggles
  1663.      =====================
  1664.  
  1665.         If PAGEBELL% = 1 then F4 has been togged ON.
  1666.         If CALLALARM% = 1 then F7 has been toggled ON.
  1667.  
  1668.  
  1669.      Clearing The Screen
  1670.      ===================
  1671.  
  1672.         Clear the local and callers screen and refresh LINES 24/25 of
  1673.         the local console:
  1674.  
  1675.         CALL CLR.SCRN
  1676.  
  1677.  
  1678.  
  1679.                                   Page  26
  1680.      DoorPch - Version 3.5
  1681.      User's Guide for DOOR Programmers
  1682.  
  1683.  
  1684.      BASIC Keywords
  1685.      ==============
  1686.  
  1687.      The following BASIC keywords should NEVER be used in a DOOR  that
  1688.      you  write.   Unpredictable  results are certain if  you  do  NOT
  1689.      follow the rules outlined in this document.
  1690.  
  1691.      Never use any of the following BASIC verbs:
  1692.  
  1693.          LOCATE,  PRINT,  VIEW PRINT,  PRINT USING, CLS,  COLOR,
  1694.          DRAW,  END,  INKEY$,  KEY,  ON COM,OPTION BASE,  PAINT,  PEN,
  1695.          PLAY,  POS(0),  CSRLIN,  RESUME,  RUN,  SCREEN,  SHELL,
  1696.          SOUND,  STICK,  STRIG,  SYSTEM,  WIDTH,  WINDOW
  1697.  
  1698.          There may be others . . .
  1699.  
  1700.  
  1701.      Tracking High Scores & Producing A Bulletin
  1702.      ===========================================
  1703.  
  1704.      Load  PROGB$  with your Door program's name  excluding  the(exe).
  1705.      Put this before the INCLUDE of DOORPCH.BEG.
  1706.  
  1707.      Example:  PROGB$ = "TGTRIVIA."
  1708.  
  1709.      Keep  track of your high score in a variable:  HSCR#.   If HSCR#=0
  1710.      then  NO  storage of a user score is done,  rather the  caller  is
  1711.      asked if they would like to view the high scores.
  1712.  
  1713.      Prior  to  doing  the  CALL  EXITG  or  doing  GOSUB   10410,CALL
  1714.      HIGH.SCORE.  A  file  will be  created:  <doorname.BUL>.All  game
  1715.      information  will  be included in this file.  The location  of  an
  1716.      optional bulletin is also contained therein.
  1717.  
  1718.      The sysop should be the first to run any game  calling HIGH.SCORE.
  1719.      He    will   be   asked   various   questions    to    install the
  1720.      high.score/bulletin generator.  Thereafter the sysop(only rec  #1
  1721.      sysop)  can reset the bulletins by entering a"R" at the  "Do  you
  1722.      want  to  see the high scores ?" prompt.If the SysOp is  NOT  the
  1723.      first player to use the DOOR then a default .BUL file is  created.
  1724.      You can use a text editor to add a Bulletin name at a later  time.
  1725.      The former is the preferred method.
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.                                   Page  27
  1740.      DoorPch - Version 3.5
  1741.      User's Guide for DOOR Programmers
  1742.  
  1743.  
  1744.      Sysop Information
  1745.      =================
  1746.  
  1747.      Line 24 Of The Display
  1748.      ----------------------
  1749.  
  1750.          The information on this line is obtained from PCBoard system
  1751.          files.  Listed below is the information provided.
  1752.  
  1753.          A. Node number (if in a network).
  1754.          B. The baud rate of the caller.
  1755.          C. Callers name.
  1756.          D. The name of your DOOR program and its release number
  1757.             Example: Top Gun Trivia version 3.1
  1758.          E. The time the caller entered the DOOR.
  1759.          F. If the ALT-N or ALT-X keys have been toggled, then the
  1760.             indicator will be displayed similarly to PCBoard.
  1761.          G. The current time.
  1762.          H. How many hours and minutes the caller has left in this
  1763.             DOOR. You may temporarily add or subtract from the
  1764.             caller's time remaining, use the UP or DOWN keys.
  1765.  
  1766.  
  1767.      Line 24/25 Of The Display
  1768.      -------------------------
  1769.  
  1770.          The keys listed below will cause various values to be
  1771.          displayed on line 25 of the console:
  1772.  
  1773.          A. F1 key: The current release of Doorpch QuickBASIC version
  1774.                     used to compile your DOOR.
  1775.          B. F2 key: Displays the callers ALIAS name if it is used and
  1776.                     the variables ALIAS.FIRST$ and ALIAS.LAST$ are
  1777.                     populated.
  1778.          C. F3 key: Not used in Doorpch Version 3.5.
  1779.          D. F4 key: If toggled on will display a (B)ell on the screen.
  1780.                     This key value will be returned to PCBoard when
  1781.                     the door terminates.
  1782.          E. F5 key: Nothing displayed.  Activates the DOS SHELL
  1783.          F. F6 key: Displays memory and string space available to the
  1784.                     DOOR.
  1785.          G. F7 key: If toggled on will display a (A)larm on the
  1786.                     screen.
  1787.          H. HOME:   Will display a HELP menu on line 25.
  1788.          I. END:    Will resume to "normal" line 24/25 display.
  1789.          J. PG-UP:  Will display the Message Base Areas the user is
  1790.                     authorized to access.
  1791.          K. PG-DN:  Will display Data and Voice Phone Numbers
  1792.                                  Expiration Date
  1793.                                  Password
  1794.                                  User & Sysop Comments
  1795.  
  1796.  
  1797.  
  1798.  
  1799.                                   Page  28
  1800.      DoorPch - Version 3.5
  1801.      User's Guide for DOOR Programmers
  1802.  
  1803.  
  1804.      DoorPch History
  1805.      ===============
  1806.  
  1807.      Well,  originally  I wrote the first version of  Doorpch.  I  saw
  1808.      apiece  of  code  for RBBS Doors.  I felt I could  use  it  as  a
  1809.      foundation for a PCBoard environment.  The beginnings of Top  Gun
  1810.      Trivia were born - so was Doorpch Version 1.0.
  1811.  
  1812.      I quickly saw missing features and bugs and on to release 1.1 and
  1813.      so on until 2.6.  Actually along the way I had a lot of help from
  1814.      a lot of SysOps.  Some were Beta Testers. Others gave me  inspir-
  1815.      ation  while others actually provided code.   At the moment,  two
  1816.      SysOps participated in the coding of Doorpch 3.5: Clint  Labarthe
  1817.      and Terry Shockley.  Raymond Clements was very helpful while  the
  1818.      code was still in a QuickBASIC 3.0 format.
  1819.  
  1820.      Then,  Ben  Perron restructured the code  for  QuickBASIC3.0 lib-
  1821.      raries.   Pat Carone was an early beta-tester.Who knows how  much
  1822.      these fine SysOps spent on long distance charges.  You can bet is
  1823.      was a bundle. Many thanks to them !!
  1824.  
  1825.      Why a LIBRARY and NOT source code as in 2.6?  That's a very  good
  1826.      question.   SysOps simply made too many modifications. Some  were
  1827.      given to friends.  An so it went. This code is not an attempt  to
  1828.      halt  that  type  of creativity. Rather, it is to  set  the  DOOR
  1829.      standard. If you wish specific logic added that is not  currently
  1830.      in  version 3.5, please let us know. Incorporated in version  3.4
  1831.      is  many,  many hours of work and the ideas of  countless  SysOps
  1832.      from around the world. Its the best we could do at this point.
  1833.  
  1834.      That is where we are today. It is a full functional, full feature
  1835.      LIBRARY for you to LINK your DOOR program too.  We don't ask much
  1836.      in return.  A form is provided for you to at least tell us who is
  1837.      using  it  and provide a contribution of sorts.  I can  tell  you
  1838.      this:  You won't get rich on DOORs. We won't get rich on you.  We
  1839.      all benefit from each other.
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.                                   Page  29
  1860.      DoorPch - Version 3.5
  1861.      User's Guide for DOOR Programmers
  1862.  
  1863.  
  1864.      DoorPch Credits
  1865.      ===============
  1866.  
  1867.      I'd  like to thank an old friend - Andy McPhee - at Pacific  Bell
  1868.      in  California.   He  was my supervisor during  my  first  coding
  1869.      assignments.   He once told me: "If you can think if it, you  can
  1870.      code it !".  Well, to all of you SysOps and to you Andy, here  it
  1871.      is !  We did just that !
  1872.  
  1873.      Thanks  to Ben Perron who created the first DoorPch  library  for
  1874.      Version  3.1 using DoorPch Version 2.6 source code as  the  basis
  1875.      for  the  implementation.  Without Ben's  extra  effort,  DoorPch
  1876.      would not be at the level it is at today.
  1877.  
  1878.      Thanks  to  Dick  Stout  of  Computer  Technology  who  did  much
  1879.      alpha/beta testing. His system crashed so yours wouldn't. All  of
  1880.      his  reported errors were corrected.  This lead to a almost  bug-
  1881.      free crash proof environment.
  1882.  
  1883.      Thanks  to Mark Fletcher who was inspirational in  the  beginning
  1884.      and  there after provided code during the early going.   He  kept
  1885.      the faith and used Doorpch from the beginning.
  1886.  
  1887.      Thanks  to  Jerry Fields in Georgia for  sacrificing  his  system
  1888.      also.  Many of the SysOPs simply could not wait for the  finished
  1889.      product.  Jerry was one of them.  We sure appreciate his enthusi-
  1890.      asm.
  1891.  
  1892.      Thanks also to Bud Napier in Massachusetts who kept the  pressure
  1893.      on  and was willing to provide a beta site even with bugs in  our
  1894.      code.
  1895.  
  1896.      A  special  thanks to Harold Thomson, a colleague  at  AT&T,  who
  1897.      wrote a myriad of assembler routines to assist us.
  1898.  
  1899.      Thanks  also to  Terry Shockley and Charlie Wooster, AT&T  SysOps
  1900.      of  the  Deathstar  BBS, for their  assistance  and  constructive
  1901.      reasoning during 3.5 development.
  1902.  
  1903.      Finally,  thanks to Richard Driggers, SysOp of Sparta BBS in  New
  1904.      Jersey for his belief in us.  His dedication to the betterment of
  1905.      BBS'ing  gave us cause to continue our work.  He provided a  rich
  1906.      test bed also.  Our hats goes off to him.
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.                                   Page  30
  1920.      DoorPch - Version 3.5
  1921.      User's Guide for DOOR Programmers
  1922.  
  1923.  
  1924.      Reporting Problems
  1925.      ==================
  1926.  
  1927.      If you require assistance beyond the instructions contained
  1928.      herein, please call one of our BBS's:
  1929.  
  1930.      BBS                         Phone             SysOp
  1931.      --------------------------------------------------------------
  1932.      The Black Hole BBS          (407) 260-6397    Clint Labarthe
  1933.      The Death Star BBS          (407) 875-4123    Terry Shockley
  1934.      The Computer Playroom BBS   (203) 584-1798    Ben Perron
  1935.  
  1936.                  Prime Beta Tester and DoorPch Contributor
  1937.  
  1938.      The Pegasus BBS             (502) 684-9855    Raymond Clements
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.                                   Page  31
  1980.      DoorPch - Version 3.5
  1981.      User's Guide for DOOR Programmers
  1982.  
  1983.  
  1984.      User Enhancement Requests
  1985.      =========================
  1986.  
  1987.      If  you  find that a function is not present in Doorpch  and  you
  1988.      feel this enhancement would benefit others, then please provide a
  1989.      Change  Request  (CR)  to us in the following  format.   We  will
  1990.      attempt to incorporate your request a subsequent release.
  1991.  
  1992.      Change Request (CR):
  1993.  
  1994.      Date:
  1995.      Author:
  1996.      Description of enhancement: <Pseudo code, structured English
  1997.                                   narrative or actual BASIC code>
  1998.  
  1999.      If you have a working model of the code and wish to share it with
  2000.      us, then by all means provide it.  You may submit your request in
  2001.      two  ways: 1) uploading to one of our BBS's as a  PRIVATE  upload
  2002.      and leaving a [C]omment identifying the upload to the SysOp or 2)
  2003.      mailing your request to our address:
  2004.  
  2005.                              The Black Hole BBS
  2006.                              P.O. Box 151445
  2007.                              Altamonte Springs, Florida, 32701-1445
  2008.  
  2009.      Enjoy Doorpch 3.5 !!
  2010.  
  2011.      Clint Labarthe, SysOp, The Black Hole BBS, (407) 260-6397
  2012.      Terry Shockley, SysOp, The Death Star BBS, (407) 875-4123
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.                                   Page  32
  2040.      DoorPch - Version 3.5
  2041.      User's Guide for DOOR Programmers
  2042.  
  2043.  
  2044.      Registration
  2045.      ============
  2046.  
  2047.      The DoorPch source/library code is distributed for your use on  a
  2048.      trial  basis.  If  you decide to utilize it in  a  DOOR  program,
  2049.      whether  written  for PCBoard (tm) or any  other  Bulletin  Board
  2050.      System,  you  are  required to register your  copy.   We  feel  a
  2051.      registration  fee  of $20.00 is reasonable. However,  any  amount
  2052.      from $5 to $5,000,000 will be accepted.
  2053.  
  2054.      If  you are upgrading, a one time upgrade donation of  $15.00  is
  2055.      suggested.   $ 5.00 is suggested upgrading from version over  3.1
  2056.      there  is simply so much more in this version over 2.6 that  this
  2057.      amount is more than worth it.  If you include this logic in  more
  2058.      than  one  DOOR  program,  then  please  remit  $5.00  for   each
  2059.      additional  DOOR program you release in addition to the  original
  2060.      registration  fee. We'd like to thank you for using DoorPch.   We
  2061.      hope  it is as useful to you as it has been for us. Any  and  all
  2062.      suggestions  can  be  mailed to the  address  below  or  directly
  2063.      conveyed to us on the Black Hole BBS (407) 260-6397.
  2064.  
  2065.      This  code will work without alteration with QuickBASIC 3.0  com-
  2066.      piled programs.  If you have a request for  improvements/enhance-
  2067.      ments or detect a bug, please let us know. We'll make everyeffort
  2068.      to get the code changed thus helping all of us make betterDOORs.
  2069.  
  2070.      The following registration is required of all doors released with
  2071.      DoorPch 3.5 supporting PCBoard 14.0 ONLY.  Version 3.1 should  be
  2072.      used for DOORS running under PCBoard 12.x.
  2073.  
  2074.           To: Clint Labarthe
  2075.               Black Hole Bulletin Board System
  2076.               P.O. Box 151445
  2077.               Altamonte Springs, Florida, 32701-1445
  2078.  
  2079.  
  2080.           Version: _________________
  2081.  
  2082.      I have incorporated DoorPch in the following DOOR programs. I am
  2083.      remitting $5.00 for each of them.
  2084.  
  2085.      ____________________  ____________________   ____________________
  2086.      ____________________  ____________________   ____________________
  2087.      ____________________  ____________________   ____________________
  2088.  
  2089.      Total DOOR's containing DoorPch: ______  @ $5.00 =    $__________
  2090.      Plus $20.00 Registration (unless already submitted) = $__________
  2091.                               or
  2092.      Upgrade from version 2.x                  @ $15.00  = $__________
  2093.      Upgrade from version 3.1                  @ $ 5.00  = $__________
  2094.                                             Total remitted $__________
  2095.  
  2096.  
  2097.  
  2098.  
  2099.                                   Page  33
  2100.      DoorPch - Version 3.5
  2101.      User's Guide for DOOR Programmers
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.      Signed: ______________________________     Date:____________
  2108.  
  2109.      Thanks for your support !!
  2110.      Clint Labarthe
  2111.  
  2112.      Note:
  2113.  
  2114.      Many  of you have, at some time in the past, sent us a  contribu-
  2115.      tion  for DoorPch. Those of you that have are excluded  from  the
  2116.      $20.00 registration fee.  We do, however, ask that you send $5.00
  2117.      for  each door written & released.  Consider sending  <something>
  2118.      if  you   are  upgrading  from an  earlier  version  of  DoorPch.
  2119.      Version 3.5 places you in sync with the future - PCBoard 14.0 !
  2120.  
  2121.  
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.                                   Page  34
  2160.      DoorPch - Version 3.5
  2161.      User's Guide for DOOR Programmers
  2162.  
  2163.  
  2164.      Trade Marks / Copyrights
  2165.      ========================
  2166.  
  2167.      PCBoard  (R)  is  a registered  trademark  of  Clark  Development
  2168.      Company (CDC)
  2169.  
  2170.      Microsoft (R) is a registered trademark of Microsoft Corporation.
  2171.  
  2172.      DOS   (MS-DOS)  (R)  is  a  registered  trademark  of   Microsoft
  2173.      Corporation.
  2174.  
  2175.      BRUN30.EXE is (C) Copyright Microsoft Corporation, 1987
  2176.  
  2177.      DoorPch (C) is Copyright, 1987 - 1989
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.                                   Page  35
  2220.